package com.eedi.framework.config.dal.dataobject;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.eedi.framework.config.enums.ConfigSelectTypeEnum;
import com.eedi.framework.tenant.core.db.TenantBaseDO;
import lombok.*;

/**
 * 配置定义 DO
 */
@TableName("sys_config_define")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ConfigDefineDO extends TenantBaseDO {


    /**
     * 配置定义ID
     */
    @TableId(type = IdType.ASSIGN_UUID)
    private String sysConfigDefineId;
    /**
     * 配置类型,详见ConfigTypeEnum
     */
    private String cfgType;
    /**
     * 配置项编码值,如支付的商户号类型category
     */
    private String cfgCode;
    /**
     * 配置项默认值1【基础类型、List都用该值；Map类型当做key】
     */
    private String cfgDefaultValue1;
    /**
     * 配置项默认值2【一般情况下为空；Map类型当做value】
     */
    private String cfgDefaultValue2;
    /**
     * 上级配置项值[供后台展示]，默认值-1
     */
    private String parentCfgCode;
    /**
     * 配置项名称[供后台展示]
     */
    private String cfgName;
    /**
     * 配置项表单控件[供后台展示],详见CfgFormControlEnum
     */
    private String cfgFormControl;
    /**
     * 配置项值[供后台展示],定义cfg_default_value1和cfg_default_value2可以展示哪些默认值
     */
    private String cfgDisplayValue;
    /**
     * select控件多值换行插入，0-否 ，1-是
     */
    private ConfigSelectTypeEnum multiType;

    /**
     * java类型,参看枚举类CfgValueTypeEnum
     */
    private String javaType;

}
